/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
 */
jQuery.extend(jQuery.validator.messages, {
        required: "必填项",
		remote: "请修正该字段",
		email: "请输入正确格式的电子邮件",
		url: "请输入合法的网址",
		date: "请输入合法的日期",
		dateISO: "请输入合法的日期 (ISO).",
		number: "请输入合法的数字",
		digits: "只能输入整数",
		creditcard: "请输入合法的信用卡号",
		equalTo: "请再次输入相同的值",
		accept: "请输入拥有合法后缀名的字符串",
		maxlength: jQuery.validator.format("请输入一个长度最多是 {0} 的字符串"),
		minlength: jQuery.validator.format("请输入一个长度最少是 {0} 的字符串"),
		rangelength: jQuery.validator.format("请输入一个长度介于 {0} 和 {1} 之间的字符串"),
		range: jQuery.validator.format("请输入一个介于 {0} 和 {1} 之间的值"),
		max: jQuery.validator.format("请输入一个最大为 {0} 的值"),
		min: jQuery.validator.format("请输入一个最小为 {0} 的值")
});

jQuery.extend(jQuery.validator.defaults, {
    errorElement: "span"
});

//密码不能包含中文
jQuery.validator.addMethod("isZH", function(value, element) {
	var isCH=false;
	for (var i=0;i<value.length;i++){
		if ((value.charCodeAt(i) < 0) || (value.charCodeAt(i) > 255)){//密码不能为中文
			isCH=true;
			break;
		}
	}
	if (isCH){//密码不能为中文
     	 return this.optional(element) || false;
     }else{
     	 return true;
     }
}, "密码不能包含中文");
//长度 6~16
jQuery.validator.addMethod("strength", function(value, element) { 
     if(value.length<6 || value.length>16){
     	 return this.optional(element) || false;
     }else{
     	 return true;
     }
}, "长度为6-16个字符");

//空格
jQuery.validator.addMethod("nospace", function(value, element) {       
     return this.optional(element) || /^\S+$/g.test(value);       
}, "密码不能包含空格"); 

//长度 3~20
jQuery.validator.addMethod("isLen", function(value, element) {
	var isLen=true;
	if(value.length<3 || value.length>20){
		isLen=false;
	}
     return this.optional(element) || isLen;       
}, "密码长度为3~20位"); 

//密码不能为中文
jQuery.validator.addMethod("isCH", function(value, element) { 
//	var isCH=true;
//	if(value){
//		for (var i=0;i<value.length;i++){
//			if ((value.charCodeAt(i) < 0) || (value.charCodeAt(i) > 255)){//密码不能为中文
//				isCH=false;
//				break;
//			}
//		}
//	}
	var isEach=true;
	for(var i=0;i<value.length;i++){
		var reg=/[!"#\$%&'\(\)\*\+,\-\.\/:;<=>?@\[\\\]\^_`\{\|\}~A-Za-z0-9]/;
		if(!reg.test(value.substring(i,(i+1)))){
			isEach=false;
			break;
		}
	}
   return this.optional(element) || isEach;       
}, "密码不能包含特殊字符"); 

// 密码不能包含特殊字符
jQuery.validator.addMethod("validPasswordChar", function(value, element) { 
	var isEach=true;
	for(var i=0;i<value.length;i++){
		var reg=/[!"#\$%&'\(\)\*\+,\-\.\/:;<=>?@\[\\\]\^_`\{\|\}~A-Za-z0-9]/;
		if(!reg.test(value.substring(i,(i+1)))){
			isEach=false;
			break;
		}
	}
	return this.optional(element) || isEach;       
}, "密码不能包含特殊字符"); 

// 手机号码
jQuery.validator.addMethod("mobilephone", function(value, element) {
	/**
	 * 移动号段:
	 * 134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188
	 * 联通号段:
	 * 130 131 132 145 155 156 176 185 186
	 * 电信号段:
	 * 133 153 177 180 181 189
	 * 虚拟运营商:
	 * 1700 1709 1705
	 */
	var regExp = /^(0|86|17951)?(13[0-9][0-9]|14[57][0-9]|15[012356789][0-9]|170[059]|17[678][0-9]|18[0-9][0-9])[0-9]{7}$/;
	return this.optional(element) || !!value.match(regExp);
}, "请输入合法的手机号码");

//纯数字
jQuery.validator.addMethod("allnum", function(value, element) {
	if(value.length==6){
		var isNum=value.replace(/\d/g,"").length==0	? false:true;
    	 return this.optional(element) ||isNum;
     }else{
     	return true;
     }
}, "密码不能是6位以下纯数字");

//密码弱
jQuery.validator.addMethod("isweak", function(value, element) {
	if(value.length>=6){
		var all=value.length;
		var num=all-value.replace(/[0-9]/g,"").length;//数字
		var xx=all-value.replace(/[a-z]/g,"").length;//字母
		var dx=all-value.replace(/[A-Z]/g,"").length;
		var bd=(all-num-xx-dx);//标点
		if(num>1){num=1;}
		if(xx>1){xx=1;}
		if(dx>1){dx=1;}
		if(bd>1){bd=1;}
		var score=(num*30)+(xx*30)+(dx*30)+(bd*30);
		if(score<0){E=0}
		if(score>100){E=100}
		var isweak=true;
		if(score<=30){
			isweak=false;
		}
    	 return this.optional(element) ||isweak;
     }else{
     	return true;
     }
}, "密码太弱");
